我正在尝试编写匹配正则表达式以从perl中的字符串中提取文本。
字符串可以是:
我是一个男人。我不是女人。
我希望匹配第一次出现'。',但是如果我使用[^.]
,它只返回第一个字符,即'我'而不是'我是男人'。
如何撰写我的[]
表达式?
答案 0 :(得分:2)
您可以使用
^[^.]*
表示字符串
开头的任何不是点的字符数答案 1 :(得分:-1)
您必须添加量词(您希望模式匹配的次数)。默认情况下,它是一个。
[^.]{5}
这匹配任何不是.
5次的东西。
[^.]{2,}
这匹配任何不是.
2次或更多次的内容。
[^.]{2,5}
这匹配任何非.
2,3,4或5次的任何内容。
[^.]*
量词*
表示0次或更多(它是{0,}
的快捷方式)。所以这匹配任何不是.
0次或更多次的东西。
[^.]+
量词+
表示一次或多次(它是{1,}
的快捷方式)。所以这匹配任何不是.
一次或多次的东西。 这就是你想要的。
[^.]?
量词?
表示0次或一次(它是{0, 1}
的快捷方式)。所以这匹配任何非.
0次或一次。