小编Wik*_*żew的帖子

在C#中构建动态正则表达式模式

我正在尝试构建一个正则表达式模式,其中包含从数据库中检索的某些模式部分.

例如

string pt= "@\"\\b(" + db.GetPattern + ")\\b\"";        
Regex regex = new Regex(pt, RegexOptions.IgnoreCase | RegexOptions.Compiled);
return regex.Replace(input, "*");
Run Code Online (Sandbox Code Playgroud)

虽然我试图逃避它,但我无法让它发挥作用.如果我手动构建模式

Regex regex = new Regex(@"\b(test|test2)\b", RegexOptions.IgnoreCase | RegexOptions.Compiled);
return regex.Replace(input, "*");
Run Code Online (Sandbox Code Playgroud)

它工作正常.

c# regex

8
推荐指数
1
解决办法
8233
查看次数

不在两位数之间时删除小数点

我正在清理搜索字符串,需要删除任何出现的句点,但是当它们在两位数之间时保留小数点.

例如,如果我有一个字符串

599.75,老虎队.

然后我希望它回来

599.75,老虎队

我在想一条像:

strNewString = RegEx.Replace(strOrigString,strRegEx,string.Empty);

strRegEx只会匹配.删除但是我很难搞清楚如何只匹配.而不是周围的事情.

c# regex

8
推荐指数
2
解决办法
2169
查看次数

在将CamelCase转换为带空格的字符串时忽略现有空格

我想分开camelCasePascalCase单词空格分开单词集合.

到目前为止,我有:

Regex.Replace(value, @"(\B[A-Z]+?(?=[A-Z][^A-Z])|\B[A-Z]+?(?=[^A-Z]))", " $0", RegexOptions.Compiled);
Run Code Online (Sandbox Code Playgroud)

它适用于将"TestWord"转换为"Test Word"并保持单个单词不变,例如Testing遗留Testing.

然而,ABCTest转换到A B C Test我想要的时候ABC Test.

.net c# regex

8
推荐指数
1
解决办法
121
查看次数

div中的希伯来语和英文文本

我试图在段落中添加希伯来语和英语句子的span标签.例如"所以היי所有什么都是אתכם?" 会变成 :

[span]so[/span][span]???[/span][span]all whats up[/span][span]????[/span]
Run Code Online (Sandbox Code Playgroud)

我一直在尝试使用正则表达式,但它只是删除希伯来语并在一个范围内加入英语单词.

var str = 'so ??? all whats up ?????'
var match= str.match(/(\b[a-z]+\b)/ig);
var replace = match.join().replace(match.join(),'<span>'+match.join()+'</span>')
Run Code Online (Sandbox Code Playgroud)

html javascript regex

8
推荐指数
2
解决办法
884
查看次数

匹配Java正则表达式中的y组中的x

是否有可能在Java中编写一个正则表达式模式,例如,3个中的2个(或4个中的3个)组?

例如,我有以下正则表达式:

((?=.*\d)(?=.*[a-z])(?=.*[A-Z]))
Run Code Online (Sandbox Code Playgroud)

这将只允许匹配所有三个组的模式 - 即它必须包含一个数字和一个小写字符和一个大写字符.我想这样做,它将验证一个包含三个组中至少两个的模式(例如一个数字和一个大写字符或一个小写和大写字符).

它是在单个语句中可行还是我将不得不编写单独的正则表达式并循环它们?

java regex

8
推荐指数
1
解决办法
128
查看次数

R使用tidyr :: separate分割字符串

假设我有一个这样的数据帧:

df<-data.frame(a=c("AA","BB"),b=c("short string","this is the longer string"))
Run Code Online (Sandbox Code Playgroud)

我想根据最后出现的空间使用正则表达式拆分每个字符串.我试过了:

library(dplyr)
library(tidyr)
df%>%
  separate(b,c("partA","partB"),sep=" [^ ]*$")
Run Code Online (Sandbox Code Playgroud)

但这省略了输出中字符串的第二部分.我想要的输出看起来像这样:

   a              partA  partB
1 AA              short string
2 BB this is the longer string
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢.如果我可以使用tidyr和dplyr这样会很好.

regex r dplyr tidyr

8
推荐指数
2
解决办法
5397
查看次数

熊猫在正则表达式上分裂

我有一个包含逗号分隔特征的列的 pandas df,如下所示:

Shot - Wounded/Injured, Shot - Dead (murder, accidental, suicide), Suicide - Attempt, Murder/Suicide, Attempted Murder/Suicide (one variable unsuccessful), Institution/Group/Business, Mass Murder (4+ deceased victims excluding the subject/suspect/perpetrator , one location), Mass Shooting (4+ victims injured or killed excluding the subject/suspect
Run Code Online (Sandbox Code Playgroud)

我想将此列拆分为多个虚拟变量列,但无法弄清楚如何开始此过程。我试图像这样拆分列:

df['incident_characteristics'].str.split(',', expand=True)
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,因为描述中间有逗号。相反,我需要根据逗号后跟空格和大写字母的正则表达式匹配进行拆分。str.split 可以使用正则表达式吗?如果是这样,这是如何完成的?

我认为这个正则表达式会做我需要的:

,\s[A-Z]
Run Code Online (Sandbox Code Playgroud)

python regex pandas

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

检查子字符串是否包含在字符串中并且至少具有前 4 个字符

示例字符串是:

abcdefghijklmno
Run Code Online (Sandbox Code Playgroud)

如果我输入:

abc                 FALSE    #at least 4 characters.
abcd                TRUE
cdefg               FALSE    #because the match must start from the first character.
abcde               TRUE
abcdeghi            FALSE    #because the characters must be contained consecutively.
abcdefgh            TRUE
abcdefghi           TRUE
abcdefghijklmno     TRUE
abcdefghijklmnop    FALSE    #because it exceeds the example string.
Run Code Online (Sandbox Code Playgroud)

我试过了:

set -- abc
i=1
[[ abcdefghijklmno == ${!i}* ]]
echo $?
Run Code Online (Sandbox Code Playgroud)

但也会echo "$?"返回 3、2、10或 0 个字符。

其他代码显然是错误的,但它是为了传达我想做的事情:

set -- abc
i=1
[[ abcdefghijklmno == ${!i}{4}* ]]
echo $? …
Run Code Online (Sandbox Code Playgroud)

bash awk

8
推荐指数
2
解决办法
107
查看次数

奇数正则表达式行为 - 仅匹配第一个和最后一个捕获组

我正在尝试编写一个与逗号分隔的单词列表匹配并捕获所有单词的正则表达式.此行应匹配   apple , banana ,orange,peanut 和捕获应该是apple,banana,orange,peanut.要做到这一点,我使用以下正则表达式:

^\s*([a-z_]\w*)(?:\s*,\s*([a-z_]\w*))*\s*$
Run Code Online (Sandbox Code Playgroud)

它成功地匹配字符串,但突然间只applepeanut被捕获.在C#和Perl中都可以看到这种行为.因此,我假设我遗漏了有关正则表达式匹配如何工作的事情.有任何想法吗?:)

c# regex perl capture

7
推荐指数
1
解决办法
984
查看次数

正则表达式与C++ regex_match无法正常工作

我正在研究c ++ 11中的正则表达式,这个正则表达式搜索返回false.有谁知道我在做错了什么?.我知道.*除了换行符之外,它代表任意数量的字符.

所以我期待regex_match()返回true并将输出"找到".然而,输出结果是"未找到".

#include<regex>
#include<iostream>

using namespace std;

int main()
{
    bool found = regex_match("<html>",regex("h.*l"));// works for "<.*>"
    cout<<(found?"found":"not found");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ regex c++11

7
推荐指数
1
解决办法
1114
查看次数

标签 统计

regex ×9

c# ×4

.net ×1

awk ×1

bash ×1

c++ ×1

c++11 ×1

capture ×1

dplyr ×1

html ×1

java ×1

javascript ×1

pandas ×1

perl ×1

python ×1

r ×1

tidyr ×1