相关疑难解决方法(0)

如何在Java中将CamelCase转换为人类可读的名称?

我想编写一个将CamelCase转换为人类可读名称的方法.

这是测试用例:

public void testSplitCamelCase() {
    assertEquals("lowercase", splitCamelCase("lowercase"));
    assertEquals("Class", splitCamelCase("Class"));
    assertEquals("My Class", splitCamelCase("MyClass"));
    assertEquals("HTML", splitCamelCase("HTML"));
    assertEquals("PDF Loader", splitCamelCase("PDFLoader"));
    assertEquals("A String", splitCamelCase("AString"));
    assertEquals("Simple XML Parser", splitCamelCase("SimpleXMLParser"));
    assertEquals("GL 11 Version", splitCamelCase("GL11Version"));
}
Run Code Online (Sandbox Code Playgroud)

java regex string camelcasing humanize

149
推荐指数
5
解决办法
6万
查看次数

用于匹配未跟随某个其他子字符串的子字符串的正则表达式

我需要一个匹配blahfooblah但不匹配的正则表达式blahfoobarblah

我希望它只匹配foo和foo周围的所有东西,只要它没有跟着bar.

我尝试使用它:foo.*(?<!bar)它非常接近,但它匹配blahfoobarblah.背后的负面看法需要匹配任何东西而不仅仅是酒吧.

我正在使用的特定语言是Clojure,它使用Java正则表达式.

编辑:更具体地说,我也需要通过blahfooblahfoobarblah但不是blahfoobarblahblah.

java regex clojure

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

正则表达式所有不包含字符串的字符串?

好的,所以这是完全愚蠢的事情,但这是我从未学会做的事情和麻烦.

如何指定不包含其他字符序列的字符串.例如,我想匹配所有不以'.config'结尾的行

我认为我可以做到

.*[^(\.config)]$
Run Code Online (Sandbox Code Playgroud)

但这不起作用(为什么不呢?)

我知道我能做到

.*[^\.][^c][^o][^n][^f][^i][^g]$
Run Code Online (Sandbox Code Playgroud)

但请告诉我有更好的方法

regex

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

如何否定Java中的任何正则表达式

我有一个我想要否定的正则表达式,例如

/(.{0,4})
Run Code Online (Sandbox Code Playgroud)

哪个String.matches返回以下内容

"/1234" true
"/12" true
"/" true
"" false
"1234" false
"/12345" false
Run Code Online (Sandbox Code Playgroud)

有没有办法否定(仅使用regx)以上结果,以便结果是:

"/1234" false
"/12" false
"/" false
"" true
"1234" true
"/12345" true
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种适用于任何regx的通用解决方案,而无需重写整个正则表达式.

我看过以下 如何否定整个正则表达式?使用(?!pattern),但这对我来说似乎不起作用.

以下regx

(?!/(.{0,4}))
Run Code Online (Sandbox Code Playgroud)

返回以下内容:

"/1234" false
"/12" false
"/" false
"" true
"1234" false
"/12345" false
Run Code Online (Sandbox Code Playgroud)

这不是我想要的.任何帮助,将不胜感激.

java regex regex-negation

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

正则表达式:从引号中提取所有单词

通过使用正则表达式,如何使用双引号提取所有文本,并在此类字符串中使用引号中的所有单词:

01AB "SET 001" IN SET "BACK" 09SS 76 "01 IN" SET
Run Code Online (Sandbox Code Playgroud)

第一个正则表达式应该提取双引号内的所有文本

SET 001
BACK
01 IN
Run Code Online (Sandbox Code Playgroud)

第二个表达式shoud提取字符串中的所有其他单词

01AB
IN
SET
09SS
76
SET
Run Code Online (Sandbox Code Playgroud)

对于第一种情况工作正常("(.*?)").如何从引号中提取所有单词?

c# regex split

6
推荐指数
1
解决办法
3694
查看次数

只有在没有前面的情况下才能替换正则表达式

对于我对正则表达式公然缺乏知识感到抱歉,我理解这里有很多问题,但我可能会花费几个小时的时间来尝试,我无法弄清楚这一点.基本上我要做的是在字符串中替换所有出现的6位数字(有或没有连字符).但是,如果前面有某些单词,我不希望替换数字.

这个正则表达式匹配一个不包含单词的行?解决方案接近我正在寻找的,但我似乎无法以符合我的要求的方式使用它.

我需要的是如下:对于字符串:

"用户在2014年5月23日支付了43英镑,账户123456,支票123456交易:123456."

我希望只替换之前没有"check"或"transaction:"的6位数字.我一直在尝试的内容如下:

\b[0-9]{2}-?[0-9]{2}-?[0-9]{2}\b 
Run Code Online (Sandbox Code Playgroud)

(这取代了所有6位数字)

使用此如何使用正则表达式替换匹配,只有在它没有给定字符的前面?回答,我试过了

(^cheque\s[0-9]{2}-?[0-9]{2}-?[0-9]{2}\b) 
Run Code Online (Sandbox Code Playgroud)

(请注意我首先尝试其中一个我希望逃避的词,然后包括其他词.)这不会取代任何6位数字.

经过反复试验,我发现了

(cheque\s+[0-9]{2}-?[0-9]{2}-?[0-9]{2}\b) 
Run Code Online (Sandbox Code Playgroud)

将替换单词检查后跟一个6位数字,所以我到达那里 - 但我需要否定这个(并且交易后跟6位数字)并替换不在这些单词之前的6位数字.

如何否定整个正则表达式?回答有助于弄清楚如何否定表达但是尽可能地尝试,我找不到如何使它适用于我的情况.我试过了

^(?!(?:((transaction\s+[0-9]{2}-?[0-9]{2}-?[0-9]{2}\b) )|((cheque\s+[0-9]{2}-?[0-9]{2}-?[0-9]{2}\b) ))$).*$
Run Code Online (Sandbox Code Playgroud)

但这取代了整个弦!

非常感谢任何帮助.

感谢您.

regex

5
推荐指数
1
解决办法
4166
查看次数

正则表达式验证地址字符串不包含邮政信箱模式

我正在Laravel regex validation用户提供的地址字段上使用。

我发现多个帖子有助于验证地址字符串是否为有效的邮政信箱,例如此处此处,但我需要执行相反的操作并确保提供的字符串不是邮政信箱。

PS 我不需要进行任何地址验证,只是想确保它不是邮政信箱。

我发现这条规则非常有用,因为它检查邮政信箱号码是否存在

/^\s*(.*((p|post)[-.\s]*(o|off|office)[-.\s]*(b|box|bin)[-.\s]*)|.*((p|post)[-.\s]*(o|off|office)[-.\s]*)|.*((p|post)[-.\s]*(b|box|bin)[-.\s]*)|(box|bin)[-.\s]*)(#|n|num|number)?\s*\d+/i
Run Code Online (Sandbox Code Playgroud)

有人可以帮我为这个或类似的东西创建相反的表达吗?

我怀疑我必须使用负前瞻?!

php regex validation laravel laravel-validation

4
推荐指数
1
解决办法
4489
查看次数

为什么需要否定正则表达式?

在SO 上有关于正则表达否定的问题很多 .

我不确定我理解为什么人们觉得有必要否定一个正则表达式. 为什么不使用这样的东西grep -v只显示与正则表达式不匹配的结果?


$ ls
april  august  december  february  january  july  june  march  may  november  october  september
$ ls | grep ber
december
november
october
september
$ ls | grep -v ber
april
august
february
january
july
june
march
may
Run Code Online (Sandbox Code Playgroud)

regex regex-negation

2
推荐指数
1
解决办法
491
查看次数

如何否定正则表达式中的字符串

我知道三件事...

1)我知道:

a.{1,250}?z
Run Code Online (Sandbox Code Playgroud)

将检查 a 是否在 z 的 250 个字符以内。

2)我知道

a[^b]{1,250}?z
Run Code Online (Sandbox Code Playgroud)

将检查 a 是否在 z 的 250 个字符以内,但这些字符都不是 b。

3)我也知道

a[^bad]{1,250}?z
Run Code Online (Sandbox Code Playgroud)

将检查 a 是否在 z 的 250 个字符以内,但这些字符都不是 b、a 或 d。

4)

我将如何检查 a 是否出现在 z 的 250 个字符内,但单词 bad 没有出现在它们之间?

想象“字符串”需要完全匹配(就像在谷歌搜索中一样),伪代码看起来像:

a[^"bad"]{1,250}?z
Run Code Online (Sandbox Code Playgroud)

regex

2
推荐指数
1
解决办法
735
查看次数

否定完整的正则表达式

强制使用某个 url 结构“类型/名称”,我的工作正则表达式是:

([a-z]+\/?[a-z]+\/?)+
Run Code Online (Sandbox Code Playgroud)

现在我想通过 preg_replace 从字符串中删除所有其他字符,因此否定上面的模式。像 [^az] 这样的简单案例工作正常,但对于我的模式,我无法通过否定整个模式来使其工作。

php regex negation regex-negation regex-lookarounds

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

我如何否定这个正则表达式?

我在这个网站上找到了关于正则表达式的单词集合.我尝试了5号并设法匹配我需要的相反.

这些不应该匹配:

abba
anallagmatic
bassarisk
...
Run Code Online (Sandbox Code Playgroud)

这些应该匹配:

acritan
aesthophysiology
amphimictical
...
Run Code Online (Sandbox Code Playgroud)

此模式与反向匹配:

([a-z])([a-z])\2\1
Run Code Online (Sandbox Code Playgroud)

不幸的是,我不知道如何否定它.我读到了这个:

(?!([a-z])([a-z])\2\1)
Run Code Online (Sandbox Code Playgroud)

但似乎简单的嵌套不起作用.使用正则表达式时是否支持嵌套组?

它能做什么?

regex

0
推荐指数
1
解决办法
529
查看次数