gpt4 book ai didi

php - 正则表达式 - 匹配到点,但没有最后一个字符

转载 作者:行者123 更新时间:2023-12-02 18:23:18 24 4
gpt4 key购买 nike

我有包含多个条目的大文件,例如

car.bus.bike:
car.bus.bike.vehicle
car.bus.bike
_car.bus.bike
'car.bus.bike'

我想匹配并替换car.bus.bike没有匹配最后一个 :或者与 .vehicle 不匹配或者在匹配的地方加上任何前缀。

所以最后我想替换car.bus.bikecat.mouse.dog就像:

cat.mouse.dog:
car.bus.bike.vehicle
cat.mouse.dog
_car.bus.bike
'cat.mouse.dog'

我尝试过匹配直到 . ,与 [^-_.]$但它也匹配 :我尝试使用积极的前瞻 (?=\:)或负面回顾 (?<!_)但每次只涵盖一种情况。

最佳答案

您可以使用此正则表达式进行搜索:

(?<!\.)\b\pL\w*(?:\.\w+){2}(?=[':]|$)

并将其替换为:

cat.mouse.dog

RegEx Demo

正则表达式详细信息:

  • (?<!\.) : 断言之前的位置没有点
  • \b :匹配单词边界
  • \pL :匹配unicode字母
  • \w* :匹配0个或多个单词字符
  • (?:\.\w+){2} :匹配一个点后跟 1 个以上单词字符。重复此组 2 次
  • (?=[':]|$) :断言我们有一个 ;'或下一个位置的行尾

对于 PHP,请使用此正则表达式:

/(?<!\.)\b\pL\w*(?:\.\w+){2}(?=[':]|$)/mu

关于php - 正则表达式 - 匹配到点,但没有最后一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70568956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com