标签: regex-lookarounds

有没有办法使用正匹配正则表达式运算符对字符串进行否定匹配?

具体来说,有没有办法实现相当于

my $string = 'this is some example text';
my $match = qr/foobar/;
print 'success' if $string !~ $match;
Run Code Online (Sandbox Code Playgroud)

仅使用=〜,而不使用否定运算符?

具体来说,我需要确保一个字符串与提供的值不匹配,并且测试函数接受正则表达式对象,并将它们积极地应用于该值. 该值根本不会出现在搜索到的字符串中,这会使前瞻和后瞻断言复杂化.

像下面这样的东西可能是一个很好的测试:

my $string = 'this is some example text';
my $match =~ qr/foobar/;
# $negated_match contains $match, or some transformed variation of it
my $negated_match = qr/$YOUR_REGEX_HERE/; 
die 'failure' if $string =~ $match;
print 'success' if $string =~ $negated_match;
Run Code Online (Sandbox Code Playgroud)

我怀疑有一种方法可以通过环顾四周的断言来做到这一点,但还没有解决它.perl特定答案是可以接受的.

regex perl regex-negation regex-lookarounds

3
推荐指数
1
解决办法
299
查看次数

Regex Lookahead,最多只能看一位数

我正在寻找创建RegEx模式

  • 8个字符 [a-zA_Z]
  • 必须在字符串的任何位置只包含一位数字

我创建了这个模式:

^(?=.*[0-9].*[0-9])[0-9a-zA-Z]{8}$
Run Code Online (Sandbox Code Playgroud)

这种模式工作正常,但我只想要一个数字.例:

aaaaaaa6   match
aaa7aaaa   match

aaa88aaa   don't match
aaa884aa   don't match
aaawwaaa   don't match
Run Code Online (Sandbox Code Playgroud)

.net c# regex regex-lookarounds

3
推荐指数
1
解决办法
191
查看次数

找到具有完全(或至少)一个换行符的n个字符

我在设计正则表达式时遇到问题.我甚至不确定它是否有可能.

我想匹配n个字符,但其中一个必须是换行符(或任何已定义的字符).

这是我的意见:

0000000
0000000
000A000
00AB000
AAAB000
ABBB000
Run Code Online (Sandbox Code Playgroud)

我的(不工作)正则表达式是

.*A.{5}A.{5}A.{5}A.*
Run Code Online (Sandbox Code Playgroud)

更改模式DOTALL是不够的,因为我必须确保每个匹配之间有一个换行符A

我只是想知道我的输入是否匹配,我不想提取任何东西.

我想检查A输入中是否有-diagonal.

java regex regex-group regex-lookarounds

3
推荐指数
1
解决办法
160
查看次数

正则表达式只允许1到12之间的数字

正则表达式只允许1到12之间的数字

我正在尝试,(12)|[1-9]\d?但它不起作用,请帮助,因为我是正规表达的新手

regex regex-lookarounds

3
推荐指数
3
解决办法
1万
查看次数

查找reg ex中的特定单词以及特殊字符

string emailBody = " holla holla testing is for NewFinancial History:\"xyz\"  dsd  NewFinancial History:\"abc\"  NewEBTDI$:\"abc\"  dsds  ";

   emailBody = string.Join(" ", Regex.Split(emailBody.Trim(), @"(?:\r\n|\n|\r)"));
                var keys = Regex.Matches(emailBody, @"\bNew\B(.+?):", RegexOptions.Singleline).OfType<Match>().Select(m => m.Groups[0].Value.Replace(":", "")).Distinct().ToArray();
                foreach (string key in keys)
                {
                    List<string> valueList = new List<string>();
                    string regex = "" + key + ":" + "\"(?<" + GetCleanKey(key) + ">[^\"]*)\"";

                    var matches = Regex.Matches(emailBody, regex, RegexOptions.Singleline);
                    foreach (Match match in matches)
                    {
                        if (match.Success)
                        {
                            string value = match.Groups[GetCleanKey(key)].Value;
                            if (!valueList.Contains(value.Trim()))
                            {
                                valueList.Add(value.Trim()); …
Run Code Online (Sandbox Code Playgroud)

c# regex boost-regex regex-greedy regex-lookarounds

3
推荐指数
1
解决办法
137
查看次数

匹配正则表达式后选择下一行

我目前正在使用扫描软件"Drivve Image"从每篇论文中提取某些信息.该软件可以根据需要运行某些正则表达式代码.它似乎与UltraEdit Regex引擎一起运行.

我得到以下扫描结果:

 1. 21Sid1
 2. Ordernr
 3. E17222
 4. By
 5. Seller
Run Code Online (Sandbox Code Playgroud)

我需要在字符串中搜索文本Ordernr,然后选择以下行E17222,最后一行将是扫描文档的文件名.我永远不会知道这两个值在字符串中的确切位置.这就是我需要关注的Ordernr原因,因为我需要的文本将始终作为下一行.

我的要求是这样的,我需要E17222成为匹配结果中唯一可以工作的东西.我只允许输入普通的正则表达式.

已经有一个很棒的线程:正则表达式匹配字符串后得到的单词

我测试了" \ bOrdernr\s +\K\S + "这很棒..

是不是软件不允许使用/ K. 有没有其他方法来实现\ K?

延续

虽然如果示例文本涉及"Ordernr"背后的角色,但是当前的答案在我需要的范围内不起作用.像这个样本:

21Sid1

Ordernr 1

E17222

通过

卖家

当前的解决方案选择"1"而不是" 下一行 ",这将是" E17222 ".在匹配组中.需要指出进一步参与该问题.

regex regex-negation regex-lookarounds

3
推荐指数
2
解决办法
2万
查看次数

电子邮件屏蔽的正则表达式

我正在尝试编写一个正则表达式来掩盖电子邮件地址.以下示例.

输入:john.doe@example.en.com

输出:j*******@e*********.com

我尝试了以下但我似乎无法让它正常工作.

正则表达式:(?<=.).(?=[^@]\*?@)

输出:J-*******@ example.en.com

正则表达式:(?<=.).(?=[^@]\*?)(?=[^\.]\*?\.)

输出:J-******************融为一体.

任何帮助,将不胜感激. 演示

java regex regex-lookarounds

3
推荐指数
1
解决办法
3705
查看次数

匹配字符串的正则表达式,但仅当另一个字符串不存在于同一行的任何位置时

我正在使用许多不同的Regex实现,因为这发生在几个系统上(Linux,Windows,VS,记事本++等); 这就是我有一个客户想要删除自动调整大小的地方.目的是使用正则表达式,其中任何工具都可以找到任何具有宽度但没有自动宽度的行,然后添加自动宽度.我只想询问如何找到它,但我打算在我给定的编辑器的替换字符串中使用我在这里找到的内容.我有更换的位:我还没弄明白当另一个远离那个时,如何从另一个中取出一个.

使用https://regex101.com/我已经尝试了几十个搜索字符串.

这是我搜索字符串的起点以及几次尝试获取在线上任意位置排除AutoWidth的外观.字符串2和3基本相同,但我不知道还有什么可以尝试.我认为任何适用于后视的东西都适用于前瞻,但正如你所看到的,我甚至不能在后面工作.

(?<! AutoWidth="false") width="\d*"(?! AutoWidth="false")
(?<! AutoWidth="false").*? width="\d*"(?! AutoWidth="false")
(?<! AutoWidth="false")[0-9a-zA-Z" =]*? width="\d*"(?! AutoWidth="false")
Run Code Online (Sandbox Code Playgroud)

我卡住了,把自动宽度和宽度之间的距离放在了我的身上.

这些是我的目标

1->  <column name="Selected" AutoWidth="false" IsEditable="true" datatype="bool" width="20"/>
2->  <column width="40" AutoWidth="false" name="ExternalIdOrEmpty" index="XIDname" sort="true"/>
3->  <column width="40" name="Tax Rate" index="TRname" sort="true" AutoWidth="false"/>
4->  <column width="40" name="Total Tax" index="TTname" sort="true"/>
5->  <column name="Tax Deductible" index="TDname" sort="true"/>
Run Code Online (Sandbox Code Playgroud)

我想找到包含的所有行

宽度= "\ d*"

但那不包含

AutoWidth = "\ d*"

在同一条线上的任何地方.

这意味着在上面的示例中,只有第4行符合我的标准.

更新:

我愿意使用任何其他工具来完成工作.所以XSLT等都很好.唯一的要求是该工具通常可在Windows,Linux和Mac上使用,并且是开源的或免费的,并且也是众所周知的.

完整的xml是巨大的.这里的编辑功能限制为30,00个字符,但这是一个很好的样本.

<?xml version="1.0" encoding="utf-8" ?>
<spread>
  <ViewPatientOutboundReferralFilter> …
Run Code Online (Sandbox Code Playgroud)

regex language-agnostic xslt regex-lookarounds

3
推荐指数
1
解决办法
89
查看次数

为什么结果中包含负前瞻?

Im使用的表达式:

(?!.+\]\:)(.+)/g
Run Code Online (Sandbox Code Playgroud)

字符串:

some text I dont wan't ]: some text I want
Run Code Online (Sandbox Code Playgroud)

结果:

]: some text I want
Run Code Online (Sandbox Code Playgroud)

我的印象是前瞻从以下匹配结果中排除.那么为什么]:要包含在结果中呢?也许这是+前瞻,但我不知道该替换它.

regex regex-lookarounds

3
推荐指数
1
解决办法
337
查看次数

如何将参考列表转换为数据框?

我有一份参考文献清单,例如

references <- c(
  "Dumitru, T.A., Smith, D., Chang, E.Z., and Graham, S.A., 2001, Uplift, exhumation, and deformation in the Japanese Mt Everest, Paleozoic and Mesozoic tectonic evolution of central Africa: from continental assembly to intracontinental deformation: Journal of Neverland, v. 3, no. 192, p. 71-199.",
  "Dumitru, T.A., Smith, D., Chang, E.Z., and Graham, S.A., 2001, Uplift, exhumation, and deformation in the Japanese Mt Everest, Paleozoic and Mesozoic tectonic evolution of central Africa: from continental assembly to intracontinental deformation: Journal …
Run Code Online (Sandbox Code Playgroud)

regex string r regex-greedy regex-lookarounds

3
推荐指数
1
解决办法
43
查看次数