我需要按不在括号之间的每个逗号分割文本(sql 查询)。
示例(我标记了应包含在拆分中的逗号):
a."Id", //<- this comma
a."Description", //<- this comma
UJsonObject(
fepv."Id", //<- NOT this comma
fepv."SystemName", //<- NOT this comma
string_agg(
translations."Translations", ',' //<- NOT this comma (here can be some nested parenthesis also)
) as "Translations"
) as "Translations", //<- this comma
b."DataSource", //<- this comma
a."Name", //<- this comma
a."Value"
Run Code Online (Sandbox Code Playgroud)
我在这里找到了通用解决方案:https://regex101.com/r/6lQKjP/2,但似乎该解决方案在 dotnet 中不起作用。
我想使用Regex.Split,但如果Regex.Matches能够满足这种情况我也会很高兴。我也知道我可以编写自己的解析器,但我读到简单的情况(不提取嵌套括号)可以通过正则表达式处理。
我想创建自己的插件(不使用任何外部库 - 用于学习目的)来验证用户在正则表达式测试函数中动态键入的文本。
在示例中我有正则表达式模式:
^.{2}$
和 JavaScript 函数
$('#textbox').bind("keypress", function (event) {
var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
现在,我想在文本框中输入两个点,但是在第一次按键被触发后,一个点与模式不匹配,并且没有任何反应,因为事件被阻止。
我的问题:是否可以检查当前输入的文本是否与正则表达式模式匹配?
我在 Android 上的本机应用程序中打开 JPG 文件时遇到问题。我正在使用最新版本的 Xamarin Essentials,有一些名为 Launcher 的功能。这是我的代码
await Launcher.TryOpenAsync("file:///" + localPath);
Run Code Online (Sandbox Code Playgroud)
我的本地路径是存储在Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);.
每当我尝试打开该文件时,都会出现错误:
file:////data/user/0/mypackagename/files/.local/share/Screenshot.jpg exposed beyond app through Intent.getData()
Run Code Online (Sandbox Code Playgroud)
我在 stackoverflow 上找到了几个解决方案,但我不想使用 Intent,因为我的应用程序被设计为跨平台的(如果可能的话,我想避免原生平台编码)。
Launcher 在 iOS 上也抛出错误:
canOpenURL: failed for URL: ** -- file:///" - error: "This app is not allowed to query for scheme file
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么?
我找到了很多答案如何将httplistener设置为使用HTTPS,但每个解决方案都需要使用命令行.我想这是最快的方法,但我想编写C#类来处理这个问题.
在旧的解决方案中,我使用了webserver类(在Internet的某个地方找到,我不记得确切的名称),它允许以这种方式添加证书:
webserver.Certificate = new X509Certificate2("MyCert.pfx", "MyPassword");
Run Code Online (Sandbox Code Playgroud)
有没有办法用httplistener实现这个?从代码显然.
问候.
我正在从字符串(地址)列表中ping主机.一切都很完美,但是当主机无法访问时,ping返回Result.Address:"0.0.0.0"而不是我传入SendPingAsync函数的现有地址或主机名.这是我的代码:
var pingTasks = addresses.Select(address =>
{
return new Ping().SendPingAsync(address);
});
await Task.WhenAll(pingTasks);
StringBuilder pingResultBuilder = new StringBuilder();
foreach (var pingReply in pingTasks)
{
pingResultBuilder.Append(pingReply.Result.Address);
pingResultBuilder.Append(" ");
pingResultBuilder.Append(pingReply.Result.Status);
pingResultBuilder.Append(" ");
pingResultBuilder.Append(pingReply.Result.RoundtripTime.ToString());
pingResultBuilder.AppendLine();
}
Console.WriteLine(pingResultBuilder.ToString());
Run Code Online (Sandbox Code Playgroud)
我在这里找到了解决方案,但我需要在SendPingAsync功能上做同样的事情而不是SendAsync.我怎样才能找回通过host name / ip address从pingReply.Result?
c# ×3
regex ×2
.net ×1
certificate ×1
dns ×1
httplistener ×1
https ×1
javascript ×1
jquery ×1
ping ×1
xamarin ×1