正则表达式 123-?N\s*$
时间: 2023-12-19 22:06:18 浏览: 222
这个正则表达式可以用来匹配类似于"123-N"或"123-N "(以空格结尾)的字符串。
其中:
- "123"表示匹配数字"123";
- "-?"表示匹配横杠"-"零次或一次(即可选);
- "N"表示匹配大写字母"N";
- "\s*"表示匹配零个或多个空白字符(包括空格、制表符、换行符等);
- "$"表示匹配字符串的结尾。
相关问题
正则表达式 123\-?N\s*$ 什么意思
这个正则表达式的意思是匹配以123开头,后面可能有一个短横线,接着是一个大写字母N,最后以任意空白字符结尾的字符串。
例如,以下字符串都可以匹配:
- 123N
- 123-N
- 123-N
- 123N
但以下字符串则不能匹配:
- 123N1
- 123-NA
- 123-N \t
其中,\s匹配任意空白字符,$表示匹配字符串结尾。
正则表达式^#S:\\d+\\s\\d+\\s(#A:\\s*(\\d+)\\s*-(.*?)\\s*(?=#A:|\\n|$))
正则表达式^#S:\d+\s\d+\s(#A:\s*(\d+)\s*-(.*?)\s*(?=#A:|\n|$))?的含义是:
- ^#S: 匹配以"#S:"开头的字符串
- \d+ 匹配一个或多个数字
- \s 匹配一个空白字符(包括空格、制表符、换行符等)
- (#A:\s*(\d+)\s*-(.*?)\s*(?=#A:|\n|$))? 是一个可选的分组,匹配以"#A:"开头,后面跟着一个或多个数字,然后是一个连字符"-",最后是任意字符(非贪婪模式),直到遇到"#A:"或换行符或字符串结束。
以下是一个示例演示如何使用该正则表达式进行匹配:
```python
import re
pattern = r'^#S:\d+\s\d+\s(#A:\s*(\d+)\s*-(.*?)\s*(?=#A:|\n|$))?'
# 测试字符串
string = "#S:123 456 #A: 789 - example #A: 987 - test"
# 匹配正则表达式
match = re.match(pattern, string)
if match:
# 获取匹配到的整个字符串
full_match = match.group(0)
print("Full match: ", full_match) # 输出:#S:123 456 #A: 789 - example
# 获取第一个分组中的内容
group1 = match.group(1)
print("Group 1: ", group1) # 输出:#A: 789 - example
# 获取第二个分组中的数字
group2 = match.group(2)
print("Group 2: ", group2) # 输出:789
# 获取第三个分组中的内容
group3 = match.group(3)
print("Group 3: ", group3) # 输出:example
else:
print("No match")
```
阅读全文