python用正则表达式取右边2位 "粤ICP备2023058133号"
时间: 2023-10-30 22:05:58 浏览: 136
可以使用以下正则表达式提取右边2位:
```
\d{2}(?=号$)
```
这个正则表达式使用了正向先行断言,匹配由两个数字组成的字符串,这两个数字的后面必须是"号"这个字符,同时不包含这个"号"字符在匹配结果中。具体实现可以参考以下代码:
```python
import re
text = "粤ICP备2023058133号"
pattern = r"\d{2}(?=号$)"
match = re.search(pattern, text)
if match:
result = match.group()
print(result)
else:
print("No match")
```
输出结果为:
```
33
```
相关问题
python使用正则表达式生成手机号
下面是一个生成随机手机号的 Python 代码,使用了正则表达式:
```python
import re
import random
def generate_phone_number():
# 随机生成手机号前 3 位
first = random.choice([3, 4, 5, 7, 8])
# 随机生成手机号后 8 位
second = random.sample('0123456789', 8)
# 将列表转化为字符串
second = ''.join(second)
# 使用正则表达式将手机号格式化为 3-4-4 的格式
phone_number = re.sub(r"(?<=\d)(?=(\d{4})+$)", "-", str(first) + second)
return phone_number
print(generate_phone_number())
```
输出类似于 `138-8888-8888` 的随机手机号。
python用正则表达式判断电话号码
以下是使用Python正则表达式判断电话号码的示例代码:
```python
import re
phone_numbers = ['1234567890', '123-456-7890', '(123) 456-7890', '123.456.7890']
# 正则表达式匹配电话号码
pattern = re.compile(r'^(\d{3}[-\.\(\)]?)?\d{3}[-\.\(\)]?\d{4}$')
for number in phone_numbers:
if pattern.match(number):
print(f'{number} 是一个有效的电话号码')
else:
print(f'{number} 不是一个有效的电话号码')
```
输出:
```
1234567890 是一个有效的电话号码
123-456-7890 是一个有效的电话号码
(123) 456-7890 是一个有效的电话号码
123.456.7890 是一个有效的电话号码
```
正则表达式解释:
- `^`: 匹配字符串的开头
- `(\d{3}[-\.\(\)]?)?`: 匹配3个数字后跟着一个可选的连字符、句点或括号。`?`表示括号内的内容是可选的
- `\d{3}`: 匹配3个数字
- `[-\.\(\)]?`: 匹配一个可选的连字符、句点或括号
- `\d{4}`: 匹配4个数字
- `$`: 匹配字符串的结尾
这个正则表达式可以匹配以下格式的电话号码:
- 1234567890
- 123-456-7890
- (123) 456-7890
- 123.456.7890
如果需要匹配其他格式的电话号码,可以修改正则表达式。
阅读全文