我试图让这个Ruby代码美化工作并且遇到了与正则表达式有关的问题,说实话我只是不明白,因为我对它们的经验非常有限.
我得到的错误是:
warning: character class has duplicated range: /.*=\s*<<-?\s*([_|\w]+).*/
Run Code Online (Sandbox Code Playgroud)
哪一点指向这一行:
here_doc_term = tline.sub(%r{.*=\s*<<-?\s*([_|\w]+).*},"\\1")
Run Code Online (Sandbox Code Playgroud)
请有人能够指出这个表达的问题是什么吗?
谢谢.
我有一个应用程序需要查找并处理遵循非常具体的命名约定的文件,如下所示.
IABC_12345-0_YYYYMMDD_YYYYMMDD_HHMMSS.zip
Run Code Online (Sandbox Code Playgroud)
我无法使用搜索模式看到任何简单的方法,所以我假设在使用更简单的通配符模式生成文件列表后,我必须做类似的事情.
RegEx re = new RegEx("blah");
foreach(FileInfo fi in Directory.GetFiles(path, "I*.zip"))
{
if(re.IsMatch(fi.Name))
//blah blah blah
}
Run Code Online (Sandbox Code Playgroud)
这是最好的方法,如果是这样,我将如何形成一个正则表达式来匹配这种文件格式?
我正在编写一个C#类库,它将用作VB6应用程序和WCF服务之间的代理.
一些WCF服务方法使用Decimal数据类型作为参数,我无法直接在我提供给VB6应用程序的接口中复制,因为这是一种不受支持的类型.
如何在COM接口中实现它并将其安全地转换为WCF接口所期望的Decimal类型?
我正在编写一个C#类库组件,它将充当TCP服务器.它将通过特定端口侦听和接收XML,对其进行反序列化,然后将包含结果对象的事件作为事件参数引发.
类库本身将由VB6应用程序使用,该应用程序将接收和处理事件以及相关的COM可见类对象.
TcpServer类包装了TcpListener功能,并且不是COM可见.它处理连接并引发处理连接,断开连接和接收数据的事件.
sealed class TcpServer : IDisposable
{
private readonly TcpListener tcpListener;
private bool disposed = false;
public TcpServer(int port)
{
tcpListener = new TcpListener(IPAddress.Any, port);
tcpListener.Start();
tcpListener.BeginAcceptSocket(EndAcceptSocket, tcpListener);
}
~TcpServer()
{
Dispose(false);
}
// blah blah blah
public void Dispose()
{
Dispose(true);
}
private void Dispose(bool disposing)
{
if (this.disposed == false)
{
if (disposing)
{
if (tcpListener != null)
{
tcpListener.Stop();
}
}
this.disposed = true;
}
}
}
Run Code Online (Sandbox Code Playgroud)
WUServer是VB6应用程序创建和使用的COM可见类.它包装TcpServer类,负责反序列化任何接收的数据并使用相关的事件参数引发相应的事件.
public class WUServer : IWUServer
{
private …Run Code Online (Sandbox Code Playgroud) 我正在写一个翻译,而不是任何认真的项目,只是为了好玩,并且对正则表达式更加熟悉.从下面的代码中我想你可以找到我要去的地方(cheezburger有人吗?).
我正在使用一个字典,它使用正则表达式列表作为键,字典值是List<string>包含更多值的替换值的字典.如果我打算这样做,为了弄清楚替补是什么,我显然需要知道关键是什么,我怎样才能找出触发匹配的模式?
var dictionary = new Dictionary<string, List<string>>
{
{"(?!e)ight", new List<string>(){"ite"}},
{"(?!ues)tion", new List<string>(){"shun"}},
{"(?:god|allah|buddah?|diety)", new List<string>(){"ceiling cat"}},
..
}
var regex = "(" + String.Join(")|(", dictionary.Keys.ToArray()) + ")";
foreach (Match metamatch in Regex.Matches(input
, regex
, RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture))
{
substitute = GetRandomReplacement(dictionary[ ????? ]);
input = input.Replace(metamatch.Value, substitute);
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试什么,或者有更好的方法来实现这种疯狂吗?
我有一个基于TCPListener的服务器应用程序,它侦听单个特定端口上的客户端.客户端连接,发送一些xml,将一些xml作为响应返回,然后断开连接.
是否可以在不对客户端进行任何更改的情况下将基于TCPListener的应用程序替换为WCF服务?如果是这样,任何人都可以建议资源,这将有助于我构建这样的服务?
我正在编写一个使用WCF传输文件的应用程序.转移是分段完成的,以便在任何不可预见的中断后恢复.
我的问题是关于客户端代理的使用,是不是更好地保持它打开并重用它来传输每个文件段,还是每次我想发送东西时我应该重新打开它?
我期待分组和排序通用列表<>.我有一个表示文件的对象列表,每个对象都有一个FileName,FileType和FileDate属性.FileType定义为枚举.
我有一些工作代码,允许我按FileType将文件列表组合在一起.
var fileGroups = fileList.GroupBy(f=> f.FileType)
foreach (var group in fileGroups )
{
foreach (var file in group)
{
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够做的是通过FileType枚举值对fileGroups进行排序,然后通过FileDate对fileGroups中的每个组进行排序.
我试图从我已经提交的应用程序中找出一些意义,以便追踪错误的来源.这里有一些代码(在此简化),它创建了四个线程,这些线程又在主窗体上填充列表视图.每个方法从数据库获取数据并从资源dll检索图形,以便直接填充图像列表和列表视图.
从我在这里阅读(链接)不应该从UI线程以外的任何线程更新UI元素,但这似乎工作?
Thread t0 = new Thread(new ThreadStart(PopulateListView1));
t0.IsBackground = true;
t0.Start();
Thread t1 = new Thread(new ThreadStart(PopulateListView2));
t1.Start();
Thread t2 = new Thread(new ThreadStart(PopulateListView3));
t2.Start();
Thread t3 = new Thread(new ThreadStart(PopulateListView4));
t3.Start();
Run Code Online (Sandbox Code Playgroud)
错误本身是System.InvalidOperationException"图像无法添加到ImageList".让我想知道上面的代码是否以某种方式链接.
这是填充推荐用户界面的方法,如果没有,那么可能出现的并发症是什么?
更新:
我可能通过引用"形式"给出了一些错误的信息.该应用程序是一个Windows窗体应用程序,但代码来自基于用户控件的插件应用程序.线程在由此控件公开暴露的初始化方法内创建.listviews等也是此插件usercontrol的一部分.