小编zx8*_*x81的帖子

要匹配的正则表达式模式,不包括...... /除外

- 编辑 - 目前的答案有一些有用的想法,但我想要一些更完整的东西,我可以100%理解和重用; 这就是我设置赏金的原因.对于我来说,无处不在的想法比没有标准语法更好\K

这个问题是关于如何匹配模式除了某些情况s1 s2 s3.我举一个具体的例子来说明我的意思,但更喜欢我能100%理解的一般答案,所以我可以在其他情况下重复使用它.

我希望匹配五位数\b\d{5}\b但不能在三种情况下匹配s1 s2 s3:

s1:不在以句子这样的句号结尾的行上.

s2:在parens里面没有任何地方.

s3:不在以#开头if(和结尾的块内//endif

我知道如何使用前瞻和后视来解决s1 s2 s3中的任何一个,尤其是在C#lookbehind或\KPHP中.

例如

S1 (?m)(?!\d+.*?\.$)\d+

s3与C#lookbehind (?<!if\(\D*(?=\d+.*?//endif))\b\d+\b

s3与PHP\K (?:(?:if\(.*?//endif)\D*)*\K\d+

但条件的混合使我的头脑爆炸.更糟糕的是,我可能需要在其他时间添加其他条件s4 s5.

好消息是,我不在乎是否使用PHP,C#,Python或邻居的洗衣机等大多数常用语言处理文件.:)我几乎是Python和Java的初学者,但有兴趣了解它是否有解决方案.

所以我来到这里看是否有人想到一个灵活的食谱.

提示没问题:你不需要给我完整的代码.:)

谢谢.

regex

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

如何立即触发timer.Elapsed事件

我正在使用System.Timers.Timer该类创建一个带有Timer.Elapsed事件的计时器.事情是Timer.Elapsed只有在间隔时间过去之后才会首次触发事件.

有没有办法Timer.Elapsed在启动计时器后立即举起活动?

我在System.Timers.Timer课堂上找不到任何相关的财产.

c# events timer

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

绕过android usb主机权限确认对话框

我想在工业中使用android,

我可以使用slickdevlabs.com库连接到Profilic和Ftdi USB转串口芯片,没有任何问题.

应用程序有一个服务,它在启动时启动,连接到USB串口并执行其他操作.

我的问题是主机设备没有与用户进行任何交互,

所以当android问

Allow the app "MyAPP" to access the USB device ?
[checkmark]Use by default for this USB device
Cancel            OK
Run Code Online (Sandbox Code Playgroud)

没有人点击确定.

即使我默认检查使用...复选框,如果我重新插入USB,或重新启动主机设备,它会在下次启动时再次询问.

我使用SuperUser模式运行服务和应用程序,但没有区别,它再次询问.

我添加了意图过滤但没有区别,它每次都会问我.

        <intent-filter>
            <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
            <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
        </intent-filter>

        <meta-data
            android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
            android:resource="@xml/device_filter" />
        <meta-data
            android:name="android.hardware.usb.action.USB_DEVICE_DETACHED"
            android:resource="@xml/device_filter" />
Run Code Online (Sandbox Code Playgroud)

任何意见如何绕过或禁用它?

我有root和SU访问权限.

permissions usb android usbserial root

31
推荐指数
5
解决办法
4万
查看次数

递归PHP正则表达式

编辑:我选择了ridgerunner的答案,因为它包含解决问题所需的信息.但我也想为特定问题添加一个完全充实的解决方案,以防其他人想要完全理解这个例子.你会发现它在下面的某个地方.

这个问题是关于澄清php的正则表达式引擎的递归表达式的行为.(如果你想法如何在不使用递归的php正则表达式的情况下正确匹配下面的字符串,这非常酷,但这不是问题.)

a(?:(?R)|a?)a
Run Code Online (Sandbox Code Playgroud)

这是一个简单的表达式,旨在匹配字符"a"或没有任何内容,嵌套在字符"a"的一个或多个嵌套中.例如,aa,aaa,aaaa,aaaaa.您不需要为此使用递归:

aa*a
Run Code Online (Sandbox Code Playgroud)

会很棒.但重点是使用递归.

以下是您可以运行的一段代码来测试我的失败模式:

<?php
$tries=array('a','aa','aaa','aaaa','aaaaa','aaaaaa');
$regex='#a(?:(?R)|a?)a#';
foreach ($tries as $try) {
echo $try." : ";
if (preg_match($regex,$try,$hit)) echo $hit[0]."<br />";
else echo 'no match<br />';
}
?>
Run Code Online (Sandbox Code Playgroud)

在该模式中,两个"a"构成交替.在交替中,我们要么匹配整个模式的递归(两个"a"构成交替),要么匹配字符"a",可选地为空.

在我看来,对于"aaaa",这应该与"aaaa"相匹配.

但这是输出:

a : no match
aa : aa
aaa : aaa
aaaa : aaa
aaaaa : aaaaa
aaaaaa : aaa
Run Code Online (Sandbox Code Playgroud)

有人能解释第三和第五行输出的情况吗?我试过追踪我想象引擎必须采取的路径,但我必须想象它是错的.为什么引擎返回"aaa"作为"aaaa"的匹配?是什么让它如此渴望?我必须以错误的顺序想象匹配的树.

我意识到了

#(?:a|a(?R)a)*#
Run Code Online (Sandbox Code Playgroud)

有点作品,但我的问题是为什么其他模式没有.

谢谢堆!

php regex recursion

25
推荐指数
2
解决办法
3955
查看次数

使用reloadData方法重新加载UICollectionView会在重新加载数据之前立即返回

我需要知道何时重新加载UICollectionView已经完成以便以后配置单元格(因为我不是单元格的数据源 - 其他明智的就是已经完成它...)

我试过像这样的代码

[self.collectionView reloadData];
[self configure cells]; // BOOM! cells are nil
Run Code Online (Sandbox Code Playgroud)

我也试过用

[self.collectionView performBatchUpdates:^{
  [self.collectionView reloadData];
    } completion:^(BOOL finished) {
        // notify that completed and do the configuration now
  }];
Run Code Online (Sandbox Code Playgroud)

但是当我重新加载数据时,我正在崩溃.

如何将数据重新加载到集合中,并且只有在完成重新加载后才能重新加载 - 执行特定的完成处理程序

objective-c-blocks completionhandler uicollectionview uicollectionviewcell

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

第一次出错后立即停止valgrind

我的程序处理大错误,在开发过程中会在控制台上产生大量输出.它遭受内存损坏,我尝试使用valgrind来定位错误.

不幸的是,我无法在输出行中找到错误消息,并且当它们弹出时它们会快速刷新以取消执行.它们必须在那里才能找到错误(哪个元素确实会导致错误等等).然后在我的程序中重定向不起作用,就像管道输出只重定向程序输出,而不是valgrind输出.

你能给我一个如何解决这个问题的提示吗?

debugging valgrind

16
推荐指数
4
解决办法
8425
查看次数

等到上一个.append()完成

我们怎样才能append等到前一个append完成.我附加了大量数据,因此当前附加应检查前一个附加是否完整.我能够通过给予所有附加物独立的一些时间延迟来做到这一点.但实际上根据我的代码我可能有'n'个附加,所以我想动态地这样做.

我尝试使用for或while循环,但脚本已损坏,浏览器崩溃,因为下一个追加是在上一个追加完成之前开始的.


$('#printall1').click(function() {
$('#fourElementsonly').empty();
var cleartable = 0;
var maxlimit = 0;
var presentarraycount = 0;
$.post("/PortalUserReport/getjunkdata", null, function(response, status) {
    var report = eval(response);
    var totalRecordsCount = report.length; //6000
    var totalRecordsCountfortheLoop = totalRecordsCount;
    var arraycount = Math.ceil(totalRecordsCount / 1000);
    var reports = new Array(arraycount); // reports[6]
    for (var i = 0; i < arraycount; i++) {
        $('#fourElementsonly').append('<table border = "1" id = "Portal_User_elements' + i + '" style = " border-collapse:collapse; width:800px; margin:0px; padding:0px; …
Run Code Online (Sandbox Code Playgroud)

jquery append

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

如何在jQuery网格中更改标题高度?

我有一个jQuery网格,有5列.我的列名太大所以我在jQuery网格中定义了类似的东西:

Information about <br/> customers bioData
Run Code Online (Sandbox Code Playgroud)

在我的jQuery专栏中,我看到"有关信息",但我无法看到"Customers BioData".

如何设置标题高度?

jquery jqgrid

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

允许立即启用JMX监视重新启动Java应用程序

我有一个启用了JMX监控的Java应用程序,如下所示:

-Dcom.sun.management.jmxremote.port=9999 \
// some other properties omitted
Run Code Online (Sandbox Code Playgroud)

但是当我尝试重新启动应用程序时,有时我收到错误说JMX端口号已经在使用中.这是不可接受的.

所以我想为底层套接字设置SO_REUSEADDR为true以避免此错误,但没有找到相关的JMX属性.

任何的想法?

java jmx shutdown restart reusability

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

python根据文件名中的文本字符将多个文件从一个文件夹移动到另一个文件夹

我是Python的新手.我一直在探索这个shutil模块,并且可以移动一般的东西.我的问题围绕着:

想象一下,在导出文件夹中有数百个文件的场景.虽然所有文件都是不同的,但每个文件中有13个是针对特定供应商的.我想创建一个遍历导出文件夹的脚本,评估每个文件名,抓取所有Apple文件并将它们放入Apple文件夹,Intel文件并将它们放入英特尔文件夹等.任何智慧都将非常感激.

我试图在shutil副本中使用通配符,但没有任何运气.

谢谢,

JT

python python-2.7

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