我正在寻找一个模式,匹配所有的东西,直到第一次出现一个特定的字符,说一个“;”-分号。
我这样写道:
/^(.*);/
但它实际上匹配所有内容(包括分号),直到最后出现一个分号。
我正在寻找一个模式,匹配所有的东西,直到第一次出现一个特定的字符,说一个“;”-分号。
我这样写道:
/^(.*);/
但它实际上匹配所有内容(包括分号),直到最后出现一个分号。
当前回答
我遇到了一个类似的问题,包括所有字符,直到单词entity_id后面的第一个逗号。Bigquery的解决方案是这样的:
SELECT regexp_extract(line_items,r'entity_id*[^,]*')
其他回答
这些建议的答案对我都不起作用。(例如在notepad++中) 但
^.*?(?=\;)
did.
我遇到了一个类似的问题,包括所有字符,直到单词entity_id后面的第一个逗号。Bigquery的解决方案是这样的:
SELECT regexp_extract(line_items,r'entity_id*[^,]*')
尝试/ [^;]* /
谷歌正则表达式字符类的详细信息。
真的有点难过,没有人给你正确的答案....
在正则表达式中,?使它非贪婪。默认情况下,regex将尽可能多地匹配(贪婪)
简单地加一个?并且它将是非贪婪的,匹配越少越好!
祝你好运,希望有帮助。
会;
/^(.*?);/
工作吗?
的吗?是惰性操作符,因此正则表达式在匹配;之前抓取尽可能少的内容。